package com.hr.rbac.dao;

import java.util.List;

import com.hr.rbac.domain.Role;
import com.hr.utils.PageBean;

/**
 * 角色持久层
 * @author 杨谦
 * @date 2015-11-5
 *
 */
public interface RoleDao {
	/**
	 * 通过角色编号查询角色
	 * @param roleID
	 * @return 
	 */
	public Role findByRoleId(String roleID);
	/**
	 * 查询所有角色
	 * @return
	 */
	public List<Role> QueryAll();
	/**
	 * 所有角色的分页查询
	 */
	public PageBean<Role> queryAll_Page(int PageCurrent,int PageSize);
	/**
	 * 添加角色
	 * @param role
	 */
	public void addRole(Role role);
	/**
	 * 通过用户ID查询角色
	 * @param roleUserID
	 * @return
	 */
	public Role findByRoleUserId(String userID);
	/**
	 * 通过角色名称查询
	 * @param roleName
	 * @return
	 */
	public Role findByRoleName(String roleName);
	/**
	 * 保存privilege_id以及function_id以及role_id三个外键
	 * @param privilege_id
	 * @param function_id
	 * @param role_id
	 */
	public void saveRole(String privilege_id, String function_id, String role_id);
	/**
	 * 保存权限id外键以及角色id外键
	 * @param privilege_Id
	 * @param role_ID
	 */
	public void saveRole_Privilege(String privilege_Id, String role_ID);
	/**
	 * 保存角色
	 * @param role
	 */
	public void save(Role role);
	
	/**
	 * 保存角色和用户两个id外键表
	 * @param user_id
	 * @param role_id
	 */
	public void saveRoleAndUser(String user_id, String role_id);
	
	/**
	 * 根据用户id和角色id修改两者权限表
	 * @param user_id
	 * @param role_id
	 */
	public void updateRoleAndUser(String user_id, String role_id);
	
	/**
	 * 根据角色id级联删除对应角色
	 * @param role_id
	 */
	public void deleteRoleByRoleID(String role_id);
}
